package modelo.servicio;

import java.util.List;
import modelo.bd.dao.DetalleDAO;
import modelo.bd.excepcion.DAOException;
import modelo.dominio.Detalle;

public class Detalles {

    private static Detalles instancia;
    private DetalleDAO dao;

    private Detalles() {
        this.dao = new DetalleDAO();
    }

    public static Detalles instancia() {
        if (instancia == null) {
            instancia = new Detalles();
        }
        return instancia;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return new CloneNotSupportedException("No se puede clonar Detalles.");
    }

    public void agregar(String clave, String tipo, String descripcion,
            String descripcionCorta, String usuario) throws DAOException {
    }

    public void editar(String clave, String tipo, String descripcion,
            String descripcionCorta, String usuario) throws DAOException {
    }

    public void eliminar(String clave) throws DAOException {
    }

    public List<Detalle> todos() throws DAOException {
        return dao.selectAll();
    }

    public Detalle porClave(String clave) throws DAOException {
        try {
            List<Detalle> ls = dao.selectWhere("cafl_clave  = '" + clave.replace("'", "''") + "'");
            return ls.get(0);
        } catch (Exception e) {
            return null;
        }
    }

    public List<Detalle> deSolicitud(String claveFlujo, long folioFlujo) throws DAOException {
        return dao.selectWhere("AND  dehf_fluj_clave  = '" + claveFlujo.replace("'", "''") + "' \n"
                             + "AND  dehf_hifl_numero = " + folioFlujo);
    }
}
